package com.openlogic.common.logic.utils;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import com.openlogic.common.core.exception.UtilException;
import com.openlogic.common.logic.utils.rpc.OkHttpUtils;
import com.openlogic.common.logic.utils.rpc.WebServiceUtils;
import com.openlogic.common.security.utils.SecurityUtil;

/**
* @ClassName: CommUtils
* @Description: 通信工具类
* @author weiyongpeng
* @date 2024年8月6日 下午2:26:26
 */
public class CommUtils {

	/**
	* 描述：通用通信方法
	* @Title: comm
	* @param url
	* @param type
	* @param functionName
	* @param params
	* @param tokenService
	* @return
	* @throws Exception
	* @author weiyongpeng
	 * @param wsParams 
	* @date  2024年8月6日 下午2:26:43
	 */
	public static String comm(String url, String type, String functionName, String params, String reqType, Object[] wsParams) throws Exception {
		if(type.equals("") || url.equals("")) {
			throw new UtilException("请检查url参数以及通信方式等参数");
		}
		String str = "";
		// 生成登录token 
		String userToken = SecurityUtil.getTokenValue();
		if ("http".equals(type)) {
			Map<String, String> headers = new HashMap<>();
			headers.put("Authorization", userToken);
			if(reqType != null && !reqType.equals("") && reqType.equals("get")) {
				str = OkHttpUtils.httpGet(url + (StringUtils.isNotBlank(params) ? ("?" + params) : ""),headers);
			}else if(reqType != null && !reqType.equals("") && reqType.equals("post")) {
				params = params.substring(0,params.length()-1);
				params += "}";
				params = com.alibaba.fastjson2.JSONObject.parseObject(params).toString();
				OkHttpUtils.httpPostJson(url, headers, params);
			}
		} else if ("feign".equals(type)) {
		} else if ("webService".equals(type)) {
			str = WebServiceUtils.getInvoke(url,functionName,wsParams);
		}
		return str;
	}

}
